// Copyright 叶湘 ( weixin:yexiang841, email:yexiang841@qq.com ), Shitouren Studio. All Rights Reserved.

#pragma once

#include "Pawn/Q3D_CPPA_Pawn_Fighter.h"
#include "Q3D_CPPA_Pawn_FighterChief_ClassA.generated.h"

/**
 *
 */
UCLASS(Blueprintable, ClassGroup = (Q3D), meta = (Tooltip = "主角飞行器 Alpha (第三视角)类 Pawn(C++)"))
class Q3D_LIB_API AQ3D_CPPA_Pawn_FighterChief_ClassA : public AQ3D_CPPA_Pawn_Fighter
{
	GENERATED_BODY()

public:
	AQ3D_CPPA_Pawn_FighterChief_ClassA();

	/** Base turn rate, in deg/sec. Other scaling may affect final turn rate. */
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Q3D_Pawn_FighterChiefClassA, meta = (Tooltip = "基本旋转速度", ExposeOnSpawn = "true"))
	float BaseTurnRate;

protected:
	// Called when the game starts or when spawned
	virtual void BeginPlay() override;

public:
	virtual void Q3D_IF_PropertyState_InitDT_Get_Implementation(UDataTable *&ptr_dt_property_init) const override;

protected:
	// APawn interface
	virtual void SetupPlayerInputComponent(class UInputComponent *PlayerInputComponent) override;
	// End of APawn interface

protected:
	/** Resets HMD orientation in VR. */
	void OnResetVR();

	/** Handler for when a touch input begins. */
	void TouchStarted(ETouchIndex::Type FingerIndex, FVector Location);

	/** Handler for when a touch input stops. */
	void TouchStopped(ETouchIndex::Type FingerIndex, FVector Location);
};
